home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / DShowIDL / Mstvgs.idl < prev    next >
Encoding:
Text File  |  2002-11-12  |  40.0 KB  |  838 lines

  1. // GuideStore.idl : IDL source for GuideStore.dll
  2. //
  3.  
  4. // This file will be processed by the MIDL tool to
  5. // produce the type library (GuideStore.tlb) and marshalling code.
  6.  
  7. import "oaidl.idl";
  8. import "ocidl.idl";
  9.  
  10. interface IObjects;
  11. interface IMetaProperties;
  12. interface IMetaProperty;
  13. interface IMetaPropertyCondition;
  14. interface IMetaPropertySet;
  15. interface IMetaPropertySets;
  16. interface IMetaPropertyType;
  17. interface IMetaPropertyTypes;
  18.  
  19. interface IGuideStore;
  20. interface IService;
  21. interface IServices;
  22. interface IProgram;
  23. interface IPrograms;
  24. interface IScheduleEntry;
  25. interface IScheduleEntries;
  26. interface IChannel;
  27. interface IChannels;
  28. interface IChannelLineup;
  29. interface IChannelLineups;
  30. interface IGuideDataProvider;
  31. interface IGuideDataProviders;
  32.  
  33. #define didAdd                         10
  34. #define didAddAt                     15
  35. #define didAddNew                     20
  36. #define didAddNewAt                     25
  37. #define didAnd                         30
  38. #define didBeginTrans                 35
  39. #define didChannelLineups             40
  40. #define didChannels                     50
  41. #define didCommitTrans                 55
  42. #define didCond                         60
  43. #define didCopyrightDate             70
  44. #define didCount                     80
  45. #define didDataEndTime                 90
  46. #define didDefaultValue                100
  47. #define didDescription                110
  48. #define didEndTime                    120
  49. #define didGuideDataProvider        135
  50. #define didGuideDataProviders        136
  51. #define didID                        150
  52. #define didIdOf                        155
  53. #define didIID                        170
  54. #define didIsAnyDataAvailable        180
  55. #define didInit                        190
  56. #if 0
  57. #define didItem                        DISPID_VALUE
  58. #else
  59. #define didItem                        191
  60. #endif
  61. #define didItemAdded                195
  62. #define didItemChanged                196
  63. #define didItemRemoved                197
  64. #define didItemsByKey                198
  65. #define didItemsChanged                199
  66. #define didItemsInTimeRange            200
  67. #define didItemsWithCond            210
  68. #define didItemWithKey                215
  69. #define didItemsWithMetaProp            220
  70. #define didItemsWithMetaPropType        230
  71. #define didItemsWithService            240
  72. #define didItemsWithType            400
  73. #define didItemWithID                250
  74. #define didItemWithIID                260
  75. #define didItemWithName                270
  76. #define didItemWithMetaPropTypeLang        280
  77. #define didItemWithTypeProviderLang        285
  78. #define didItemWithProviderName        290
  79. #define didItemWithServiceAtTime    300
  80. #define didLanguage                    310
  81. #define didLength                    320
  82. #define didLookup                    325
  83. #define didMax                        330
  84. #define didMin                        340
  85. #define didName                        350
  86. #define didNew                        360
  87. #define didNewCollection            370
  88. #define didNot                        380
  89. #define didObjects                    390
  90. #define didObjectTypes                410
  91. #define didOpen                        420
  92. #define didOr                        430
  93. #define didProgram                    440
  94. #define didPrograms                    450
  95. #define didRollbackTrans            455
  96. #define didMetaProperties                460
  97. #define didMetaPropertiesOf                465
  98. #define didMetaPropertySet                470
  99. #define didMetaPropertySets                480
  100. #define didMetaPropertyType                490
  101. #define didMetaPropertyTypes            500
  102. #define didProviderDescription        510
  103. #define didProviderName                520
  104. #define didProviderNetworkName        530
  105. #define didResync                    535
  106. #define didItemInvRelBy                540
  107. #define didItemsInvRelBy            545
  108. #define didItemsInvRelToBy            546
  109. #define didItemRelBy                550
  110. #define didItemsRelBy                555
  111. #define didItemsRelToBy                556
  112. #define didRemove                    560
  113. #define didRemoveAll                565
  114. #define didSchedEntries                570
  115. #define didService                    580
  116. #define didServices                    590
  117. #define didStartTime                600
  118. #define didTitle                    620
  119. #define didType                        630
  120. #define didTuneRequest                640
  121. #define didUnreferencedItems        650
  122. #if 0
  123. #define didValue                    DISPID_VALUE
  124. #else
  125. #define didValue                    660
  126. #endif
  127.  
  128.  
  129. [
  130.     uuid(8D9EEDCE-21E9-4845-82A8-99CEC53E6DB2),
  131.     version(1.0),
  132.     helpstring("Microsoft TV GuideStore 1.0 Type Library")
  133. ]
  134. library MSTVGS
  135. {
  136.     importlib("stdole2.tlb");
  137.     [
  138.         object,
  139.         uuid(F71020D2-A467-4EB7-839A-63C8F40C7AB4),
  140.         dual,
  141.         helpstring("IMetaPropertySet Interface"),
  142.         pointer_default(unique)
  143.     ]
  144.     interface IMetaPropertySet : IDispatch
  145.     {
  146.         [propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
  147.         [propget, id(didMetaPropertyTypes), helpstring("property MetaPropertyTypes")] HRESULT MetaPropertyTypes([out, retval] IMetaPropertyTypes* *pVal);
  148.     };
  149.     [
  150.         object,
  151.         uuid(E8FD768C-EC4E-4DAB-A09C-011E8ECAE4D2),
  152.         dual,
  153.         helpstring("IMetaPropertySets Interface"),
  154.         pointer_default(unique),
  155.         nonextensible
  156.     ]
  157.     interface IMetaPropertySets : IDispatch
  158.     {
  159.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaPropertySet* *ppropset);
  160.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  161.         [propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IMetaPropertySet* *ppropset);
  162.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(BSTR bstrName, [out, retval] IMetaPropertySet **pppropset);
  163.         [propget, id(didLookup), helpstring("property Lookup")] HRESULT Lookup([in] BSTR bstr, [out, retval] IMetaPropertyType * *ppproptype);
  164.     };
  165.     [
  166.         object,
  167.         uuid(86502400-213B-4ADF-A1E2-76365E7172BD),
  168.         dual,
  169.         helpstring("IMetaPropertyType Interface"),
  170.         pointer_default(unique)
  171.     ]
  172.     interface IMetaPropertyType : IDispatch
  173.     {
  174.         [propget, id(didMetaPropertySet), helpstring("property MetaPropertySet")] HRESULT MetaPropertySet([out, retval] IMetaPropertySet* *ppropset);
  175.         [propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
  176.         [propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
  177.         [propget, id(didNew), helpstring("property New")] HRESULT New(long lang, VARIANT val, [out, retval] IMetaProperty* *pprop);
  178.         [propget, id(didCond), helpstring("property Cond")] HRESULT Cond(BSTR bstrCond, long lang, VARIANT varValue, [out, retval] IMetaPropertyCondition* *ppropcond);
  179.     };
  180.     [
  181.         object,
  182.         uuid(9BF4984A-4CFE-4588-9FCF-828C74EF7104),
  183.         dual,
  184.         helpstring("IMetaPropertyTypes Interface"),
  185.         pointer_default(unique)
  186.     ]
  187.     interface IMetaPropertyTypes : IDispatch
  188.     {
  189.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaPropertyType* *pproptype);
  190.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  191.         [propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IMetaPropertyType* *pproptype);
  192.         [propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IMetaPropertyType* *pproptype);
  193.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(long id, BSTR bstrName, [out, retval] IMetaPropertyType * *pVal);
  194.         [propget, id(didMetaPropertySet), helpstring("property MetaPropertySet")] HRESULT MetaPropertySet([out, retval] IMetaPropertySet * *pVal);
  195.     };
  196.     [
  197.         object,
  198.         uuid(A4BBD2C0-D7E4-4FC2-8FB0-176DDBCB3D72),
  199.         dual,
  200.         helpstring("IMetaProperty Interface"),
  201.         pointer_default(unique)
  202.     ]
  203.     interface IMetaProperty : IDispatch
  204.     {
  205.         [propget, id(didMetaPropertyType), helpstring("property MetaPropertyType")] HRESULT MetaPropertyType([out, retval] IMetaPropertyType* *pproptype);
  206.         [propget, id(didLanguage), helpstring("property Language")] HRESULT Language([out, retval] long *pVal);
  207.         [propget, id(didGuideDataProvider), helpstring("property GuideDataProvider")] HRESULT GuideDataProvider([out, retval] IGuideDataProvider **ppprovider);
  208.         [propget, id(didValue), helpstring("property Value")] HRESULT Value([out, retval] VARIANT *pvarValue);
  209.         [propput, id(didValue), helpstring("property Value")] HRESULT Value([in] VARIANT varValue);
  210.         [propputref, id(didValue), helpstring("property Value")] HRESULT Value([in] IUnknown *punk);
  211.         [propget, id(didCond), helpstring("property Cond")] HRESULT Cond(BSTR bstrCond, [out, retval] IMetaPropertyCondition* *ppropcond);
  212.     };
  213.     [
  214.         object,
  215.         uuid(E7F78F69-8326-48A0-8E54-BBDCEE43BA70),
  216.         dual,
  217.         helpstring("IMetaProperties Interface"),
  218.         pointer_default(unique)
  219.     ]
  220.     interface IMetaProperties : IDispatch
  221.     {
  222.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaProperty* *pprop);
  223.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  224.         [propget, id(didItemWithMetaPropTypeLang), helpstring("property ItemWith")] HRESULT ItemWith(IMetaPropertyType *ptype, long lang, [out, retval] IMetaProperty* *pprop);
  225.         [propget, id(didItemWithTypeProviderLang), helpstring("property ItemWithTypeProviderLang")] HRESULT ItemWithTypeProviderLang(IMetaPropertyType *ptype, IGuideDataProvider *pprovider, long lang, [out, retval] IMetaProperty* *pprop);
  226.         [propget, id(didItemsWithMetaPropType), helpstring("property ItemsWithMetaPropertyType")] HRESULT ItemsWithMetaPropertyType(IMetaPropertyType *ptype, [out, retval] IMetaProperties* *pprops);
  227.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(IMetaPropertyType *pproptype, long lang, VARIANT varValue, [out, retval] IMetaProperty * *pVal);
  228.         [id(didAdd), helpstring("method Add")] HRESULT Add(IMetaProperty *pprop);
  229.     };
  230.     [
  231.         object,
  232.         uuid(98FAAEF5-397A-4372-93A3-FB3DA49B3EF1),
  233.         dual,
  234.         helpstring("IMetaPropertyCondition Interface"),
  235.         pointer_default(unique)
  236.     ]
  237.     interface IMetaPropertyCondition : IDispatch
  238.     {
  239.         [propget, id(didAnd), helpstring("property And")] HRESULT And(IMetaPropertyCondition *pcond2, [out, retval] IMetaPropertyCondition* *ppropcond);
  240.         [propget, id(didOr), helpstring("property Or")] HRESULT Or(IMetaPropertyCondition *pcond2, [out, retval] IMetaPropertyCondition* *ppropcond);
  241.     };
  242.     [
  243.         object,
  244.         uuid(E4A9F7DA-F38F-43D3-AB3B-7E9F9FB7A7C7),
  245.         dual,
  246.         helpstring("IGuideStore Interface"),
  247.         pointer_default(unique)
  248.     ]
  249.     interface IGuideStore : IDispatch
  250.     {
  251.         [propget, id(didIID), helpstring("property UUID")] HRESULT UUID([out, retval] BSTR  *bstrUUID);
  252.         [propget, id(didServices), helpstring("property Services")] HRESULT Services([out, retval] IServices * *pVal);
  253.         [propget, id(didPrograms), helpstring("property Programs")] HRESULT Programs([out, retval] IPrograms * *pVal);
  254.         [propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
  255.         [propget, id(didGuideDataProviders), helpstring("property GuideDataProviders")] HRESULT GuideDataProviders([out, retval] IGuideDataProviders * *ppdataproviders);
  256.         [propget, id(didMetaPropertySets), helpstring("property MetaPropertySets")] HRESULT MetaPropertySets([out, retval] IMetaPropertySets **pppropsets);
  257.         [id(didOpen), helpstring("method Open")] HRESULT Open(BSTR bstrName);
  258.         [propget, id(didObjects), helpstring("property Objects")] HRESULT Objects([out, retval] IObjects * *ppobjs);
  259.         [propget, id(didChannels), helpstring("property Channels")] HRESULT Channels([out, retval] IChannels * *pVal);
  260.         [propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
  261.         [propget, id(didGuideDataProvider), helpstring("property ActiveGuideDataProvider")] HRESULT ActiveGuideDataProvider([out, retval] IGuideDataProvider * *pVal);
  262.         [propputref, id(didGuideDataProvider), helpstring("property ActiveGuideDataProvider")] HRESULT ActiveGuideDataProvider([in] IGuideDataProvider * newVal);
  263.  
  264.  
  265.         [propget, id(didIdOf), helpstring("property IdOf")] HRESULT IdOf([in] IUnknown *punk, [out, retval] long *pVal);
  266.         [propget, id(didMetaPropertiesOf), helpstring("property MetaPropertiesOf")] HRESULT MetaPropertiesOf([in] IUnknown *punk, [out, retval] IMetaProperties **ppprops);
  267.  
  268.         [id(didBeginTrans), helpstring("method BeginTrans")] HRESULT BeginTrans();
  269.         [id(didCommitTrans), helpstring("method CommitTrans")] HRESULT CommitTrans();
  270.         [id(didRollbackTrans), helpstring("method RollbackTrans")] HRESULT RollbackTrans();
  271.     };
  272.  
  273.     [
  274.         uuid(E7267FA2-7EC0-4577-BE37-0BBF11028A56),
  275.         helpstring("MetaPropertySet Class")
  276.     ]
  277.     coclass MetaPropertySet
  278.     {
  279.         [default] interface IMetaPropertySet;
  280.     };
  281.     [
  282.         uuid(027D8BB9-B860-4B96-B498-7EA609F33250),
  283.         helpstring("MetaPropertySets Class")
  284.     ]
  285.     coclass MetaPropertySets
  286.     {
  287.         [default] interface IMetaPropertySets;
  288.     };
  289.     [
  290.         uuid(A09139F3-47ED-4492-A45E-F7F11B121F4F),
  291.         helpstring("MetaPropertyType Class")
  292.     ]
  293.     coclass MetaPropertyType
  294.     {
  295.         [default] interface IMetaPropertyType;
  296.     };
  297.     [
  298.         uuid(5F24A17F-1DDE-4F37-8B29-489229175C73),
  299.         helpstring("MetaPropertyTypes Class")
  300.     ]
  301.     coclass MetaPropertyTypes
  302.     {
  303.         [default] interface IMetaPropertyTypes;
  304.     };
  305.     [
  306.         uuid(A42A1FF3-BC43-4714-8B94-06103474372B),
  307.         helpstring("MetaProperty Class")
  308.     ]
  309.     coclass MetaProperty
  310.     {
  311.         [default] interface IMetaProperty;
  312.     };
  313.     [
  314.         uuid(78B8FA05-01B2-4B0A-B6E0-59FC6C0E7A5E),
  315.         helpstring("MetaProperties Class")
  316.     ]
  317.     coclass MetaProperties
  318.     {
  319.         [default] interface IMetaProperties;
  320.     };
  321.     [
  322.         uuid(3B575572-EC9F-447D-9554-17C6E92E8328),
  323.         helpstring("MetaPropertyCondition Class")
  324.     ]
  325.     coclass MetaPropertyCondition
  326.     {
  327.         [default] interface IMetaPropertyCondition;
  328.     };
  329.     [
  330.         object,
  331.         uuid(59745450-F0F4-4B3F-B49E-55664E425CF6),
  332.         dual,
  333.         helpstring("IService Interface"),
  334.         pointer_default(unique)
  335.     ]
  336.     interface IService : IDispatch
  337.     {
  338.         [propget, id(didTuneRequest), helpstring("property TuneRequest")] HRESULT TuneRequest([out, retval] IUnknown * *ppunk);
  339.         [propputref, id(didTuneRequest), helpstring("property TuneRequest")] HRESULT TuneRequest([in] IUnknown  *punk);
  340.         [propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
  341.         [propget, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdt);
  342.         [propput, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([in] DATE dt);
  343.         [propget, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdt);
  344.         [propput, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([in] DATE dt);
  345.         [propget, id(didProviderName), helpstring("property ProviderName")] HRESULT ProviderName([out, retval] BSTR *pbstrName);
  346.         [propput, id(didProviderName), helpstring("property ProviderName")] HRESULT ProviderName([in] BSTR bstrName);
  347.         [propget, id(didProviderNetworkName), helpstring("property ProviderNetworkName")] HRESULT ProviderNetworkName([out, retval] BSTR *pbstrName);
  348.         [propput, id(didProviderNetworkName), helpstring("property ProviderNetworkName")] HRESULT ProviderNetworkName([in] BSTR bstrName);
  349.         [propget, id(didProviderDescription), helpstring("property ProviderDescription")] HRESULT ProviderDescription([out, retval] BSTR *pbstrDesc);
  350.         [propput, id(didProviderDescription), helpstring("property ProviderDescription")] HRESULT ProviderDescription([in] BSTR bstrDescr);
  351.         [propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
  352.         [propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
  353.     };
  354.     [
  355.         object,
  356.         uuid(D3517044-B747-42C0-AFD5-31265ABA4977),
  357.         dual,
  358.         helpstring("IServices Interface"),
  359.         pointer_default(unique)
  360.     ]
  361.     interface IServices : IDispatch
  362.     {
  363.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  364.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IService * *pVal);
  365.         [propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
  366.         [id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
  367.         [propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IService * *pVal);
  368.         [propget, id(didItemWithProviderName), helpstring("property ItemWithProviderName")] HRESULT ItemWithProviderName(BSTR bstrProviderName, [out, retval] IService * *pVal);
  369.         [propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IServices * *ppservices);
  370.         [propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IServices * *ppservices);
  371.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(IUnknown *punkTuneRequest, BSTR bstrProviderName, BSTR bstrProviderDescription, BSTR bstrProviderNetworkName, DATE dtStart, DATE dtEnd, [out, retval] IService * *pVal);
  372.         [propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IServices * *pVal);
  373.         [id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  374.         [id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IServices **ppservices);
  375.  
  376.         [propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IServices * *ppservices);
  377.         [propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IService * *ppservice);
  378.         [id(didResync), helpstring("method Resync")] HRESULT Resync();
  379.     };
  380.  
  381.     [
  382.         uuid(C4001F96-2DEE-4C33-B807-F829889A8CCD),
  383.         helpstring("GuideStore Class")
  384.     ]
  385.     coclass GuideStore
  386.     {
  387.         [default] interface IGuideStore;
  388.     };
  389.     [
  390.         uuid(957D8D57-32B1-4BE3-8E37-EC8849F16815),
  391.         helpstring("Service Class")
  392.     ]
  393.     coclass Service
  394.     {
  395.         [default] interface IService;
  396.     };
  397.     [
  398.         uuid(CCFB9EC5-E28E-4DE1-BD07-1C79303DE0A0),
  399.         helpstring("IServicesEvents Interface")
  400.     ]
  401.     dispinterface IServicesEvents
  402.     {
  403.         properties:
  404.         methods:
  405.         [id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IService *pservice);
  406.         [id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
  407.         [id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IService *pservice);
  408.         [id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
  409.     };
  410.     [
  411.         object,
  412.         uuid(FC91783E-5703-4319-A5B1-19555059559C),
  413.         dual,
  414.         helpstring("IProgram Interface"),
  415.         pointer_default(unique)
  416.     ]
  417.     interface IProgram : IDispatch
  418.     {
  419.         [propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
  420.         [propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
  421.         [propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
  422.         [propget, id(didTitle), helpstring("property Title")] HRESULT Title([out, retval] BSTR *pVal);
  423.         [propput, id(didTitle), helpstring("property Title")] HRESULT Title([in] BSTR newVal);
  424.         [propget, id(didDescription), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal);
  425.         [propput, id(didDescription), helpstring("property Description")] HRESULT Description([in] BSTR newVal);
  426.         [propget, id(didCopyrightDate), helpstring("property CopyrightDate")] HRESULT CopyrightDate([out, retval] DATE *pVal);
  427.         [propput, id(didCopyrightDate), helpstring("property CopyrightDate")] HRESULT CopyrightDate([in] DATE newVal);
  428.     };
  429.     [
  430.         object,
  431.         uuid(8786250A-8EF8-4A51-B80A-643CCF835DB6),
  432.         dual,
  433.         helpstring("IPrograms Interface"),
  434.         pointer_default(unique)
  435.     ]
  436.     interface IPrograms : IDispatch
  437.     {
  438.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  439.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IProgram * *pVal);
  440.         [propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IProgram * *pVal);
  441.         [propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IPrograms * *pVal);
  442.         [propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IPrograms * *pVal);
  443.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([out, retval] IProgram * *ppprog);
  444.         [id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IPrograms **ppprogs);
  445.         [id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  446.         [id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
  447.  
  448.         [propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IPrograms * *ppprogs);
  449.         [propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IProgram * *ppprog);
  450.         [id(didResync), helpstring("method Resync")] HRESULT Resync();
  451.     };
  452.  
  453.     [
  454.         uuid(43F457D2-C955-48E2-91AD-B91C9154C613),
  455.         helpstring("Services Class")
  456.     ]
  457.     coclass Services
  458.     {
  459.         [default] interface IServices;
  460.         [default, source] dispinterface IServicesEvents;
  461.     };
  462.     [
  463.         uuid(C51F670A-7D1A-494E-931D-886BFDB2B438),
  464.         helpstring("Program Class")
  465.     ]
  466.     coclass Program
  467.     {
  468.         [default] interface IProgram;
  469.     };
  470.     [
  471.         uuid(9AB9E463-1EC4-4D6B-AC80-5238561918EE),
  472.         helpstring("IProgramsEvents Interface")
  473.     ]
  474.     dispinterface IProgramsEvents
  475.     {
  476.         properties:
  477.         methods:
  478.         [id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IProgram *pprog);
  479.         [id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
  480.         [id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IProgram *pprog);
  481.         [id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
  482.     };
  483.     [
  484.         object,
  485.         uuid(6C46F789-2156-4AF0-97D7-38D99E2C9160),
  486.         dual,
  487.         helpstring("IScheduleEntry Interface"),
  488.         pointer_default(unique)
  489.     ]
  490.     interface IScheduleEntry : IDispatch
  491.     {
  492.         [propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
  493.         [propget, id(didService), helpstring("property Service")] HRESULT Service([out, retval] IService * *ppservice);
  494.         [propputref, id(didService), helpstring("property Service")] HRESULT Service([in] IService * pservice);
  495.         [propget, id(didProgram), helpstring("property Program")] HRESULT Program([out, retval] IProgram * *ppprog);
  496.         [propputref, id(didProgram), helpstring("property Program")] HRESULT Program([in] IProgram * pprog);
  497.         [propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
  498.         [propget, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdt);
  499.         [propput, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([in] DATE dt);
  500.         [propget, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdt);
  501.         [propput, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([in] DATE dt);
  502.         [propget, id(didLength), helpstring("property Length")] HRESULT Length([out, retval] long *pVal);
  503.     };
  504.     [
  505.         object,
  506.         uuid(E5FDD9C4-8E60-4BEB-BBC8-93BE39C75BAA),
  507.         dual,
  508.         helpstring("IScheduleEntries Interface"),
  509.         pointer_default(unique)
  510.     ]
  511.     interface IScheduleEntries : IDispatch
  512.     {
  513.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  514.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IScheduleEntry * *pVal);
  515.         [propget, id(didItemWithServiceAtTime), helpstring("property ItemWithServiceAtTime")] HRESULT ItemWithServiceAtTime(IService *pservice, DATE dt, [out, retval] IScheduleEntry * *pVal);
  516.         [propget, id(didItemsWithService), helpstring("property ItemsWithService")] HRESULT ItemsWithService(IService *pservice, [out, retval] IScheduleEntries **ppschedentries);
  517.         [propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IScheduleEntries * *pVal);
  518.         [propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IScheduleEntries * *pVal);
  519.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(DATE dtStart, DATE dtEnd, IService *pservice, IProgram *pprog, [out, retval] IScheduleEntry * *pVal);
  520.         [id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
  521.         [id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  522.         [propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IScheduleEntries * *pVal);
  523.  
  524.         [propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IScheduleEntries * *ppschedentries);
  525.         [propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IScheduleEntry * *ppschedentry);
  526.         [id(didResync), helpstring("method Resync")] HRESULT Resync();
  527.     };
  528.  
  529.     [
  530.         uuid(16C9C579-B3F4-4C94-88EC-A65EA0B839E7),
  531.         helpstring("Programs Class")
  532.     ]
  533.     coclass Programs
  534.     {
  535.         [default] interface IPrograms;
  536.         [default, source] dispinterface IProgramsEvents;
  537.     };
  538.     [
  539.         uuid(AFEBCA90-0FF9-48BD-BC98-95477A631BBB),
  540.         helpstring("ScheduleEntry Class")
  541.     ]
  542.     coclass ScheduleEntry
  543.     {
  544.         [default] interface IScheduleEntry;
  545.     };
  546.     [
  547.         uuid(32692A48-F4B5-4826-BE88-E7F8ED9E65DC),
  548.         helpstring("IScheduleEntriesEvents Interface")
  549.     ]
  550.     dispinterface IScheduleEntriesEvents
  551.     {
  552.         properties:
  553.         methods:
  554.         [id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IScheduleEntry *pschedentry);
  555.         [id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
  556.         [id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IScheduleEntry *pschedentry);
  557.         [id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
  558.     };
  559.     [
  560.         object,
  561.         uuid(ED7DF8CD-4861-4389-8149-8EDE63A51F38),
  562.         dual,
  563.         helpstring("IChannel Interface"),
  564.         pointer_default(unique)
  565.     ]
  566.     interface IChannel : IDispatch
  567.     {
  568.         [propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
  569.         [propput, id(didName), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
  570.         [propget, id(didService), helpstring("property Service")] HRESULT Service([out, retval] IService * *ppservice);
  571.         [propputref, id(didService), helpstring("property Service")] HRESULT Service([in] IService *pservice);
  572.         [propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
  573.         [propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
  574.     };
  575.  
  576.     [
  577.         uuid(226D6AD0-7026-494F-BCAD-FAB087E67290),
  578.         helpstring("ScheduleEntries Class")
  579.     ]
  580.     coclass ScheduleEntries
  581.     {
  582.         [default] interface IScheduleEntries;
  583.         [default, source] dispinterface IScheduleEntriesEvents;
  584.     };
  585.     [
  586.         object,
  587.         uuid(3BAE53BD-70F0-4C7B-8C9E-E0317FFF8D79),
  588.         dual,
  589.         helpstring("IChannels Interface"),
  590.         pointer_default(unique)
  591.     ]
  592.     interface IChannels : IDispatch
  593.     {
  594.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  595.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IChannel * *pVal);
  596.         [id(didAddAt), helpstring("method AddAt")] HRESULT AddAt(IChannel *pchan, long index);
  597.         [id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT index);
  598.         [propget, id(didAddNewAt), helpstring("property AddNewAt")] HRESULT AddNewAt(IService *pservice, BSTR bstrName, long index, [out, retval] IChannel * *pVal);
  599.         [propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IChannel **ppchan);
  600.         [propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IChannels * *ppchannels);
  601.         [id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  602.         [id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IChannels **ppchans);
  603.  
  604.         [propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IChannels * *ppchans);
  605.         [propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IChannel * *ppchan);
  606.         [id(didResync), helpstring("method Resync")] HRESULT Resync();
  607.     };
  608.  
  609.     [
  610.         uuid(83568B75-1FCC-4853-957A-9CF617B350A3),
  611.         helpstring("Channel Class")
  612.     ]
  613.     coclass Channel
  614.     {
  615.         [default] interface IChannel;
  616.     };
  617.     [
  618.         uuid(6E945C62-0AB7-4D89-BB9E-212502FC7C88),
  619.         helpstring("IChannelsEvents Interface")
  620.     ]
  621.     dispinterface IChannelsEvents
  622.     {
  623.         properties:
  624.         methods:
  625.         [id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannel *pchan);
  626.         [id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
  627.         [id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannel *pchan);
  628.         [id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
  629.     };
  630.     [
  631.         object,
  632.         uuid(AB3FF8DB-C718-4ABD-98DE-E14DC74F4872),
  633.         dual,
  634.         helpstring("IChannelLineup Interface"),
  635.         pointer_default(unique)
  636.     ]
  637.     interface IChannelLineup : IDispatch
  638.     {
  639.         [propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
  640.         [propput, id(didName), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
  641.         [propget, id(didChannels), helpstring("property Channels")] HRESULT Channels([out, retval] IChannels * *pVal);
  642.         [propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
  643.     };
  644.  
  645.     [
  646.         uuid(73AF9077-4F6D-4FCB-A9E2-FDFBB9AE5310),
  647.         helpstring("Channels Class")
  648.     ]
  649.     coclass Channels
  650.     {
  651.         [default] interface IChannels;
  652.         [default, source] dispinterface IChannelsEvents;
  653.     };
  654.     [
  655.         object,
  656.         uuid(2F78C3E1-98FE-4526-A0A7-A621025AEFF6),
  657.         dual,
  658.         helpstring("IChannelLineups Interface"),
  659.         pointer_default(unique)
  660.     ]
  661.     interface IChannelLineups : IDispatch
  662.     {
  663.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  664.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IChannelLineup **ppchanlineup);
  665.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(BSTR bstrName, [out, retval] IChannelLineup * *pVal);
  666.         [id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
  667.         [id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  668.         [id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IChannelLineups **ppchanlineups);
  669.  
  670.         [propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IChannelLineups * *ppchanlineups);
  671.         [propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IChannelLineup * *ppchanlineup);
  672.         [id(didResync), helpstring("method Resync")] HRESULT Resync();
  673.     };
  674.  
  675.     [
  676.         uuid(8F86A876-E12A-4159-9647-EAFE0288014F),
  677.         helpstring("ChannelLineup Class")
  678.     ]
  679.     coclass ChannelLineup
  680.     {
  681.         [default] interface IChannelLineup;
  682.     };
  683.     [
  684.         uuid(1E3971E3-CCDC-445D-AE97-A15D5D4A40C9),
  685.         helpstring("IChannelLineupsEvents Interface")
  686.     ]
  687.     dispinterface IChannelLineupsEvents
  688.     {
  689.         properties:
  690.         methods:
  691.         [id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannelLineup *pchanlineup);
  692.         [id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
  693.         [id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannelLineup *pchanlineup);
  694.         [id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
  695.     };
  696.     [
  697.         object,
  698.         uuid(A476A330-1123-4065-B3B7-D1EA899151BD),
  699.         helpstring("IObject Interface"),
  700.         pointer_default(unique)
  701.     ]
  702.     interface IObject : IUnknown
  703.     {
  704.         [propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
  705.         [propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
  706.         [propget, id(didItemRelBy), helpstring("property ItemRelatedBy")] HRESULT ItemRelatedBy([in] IMetaPropertyType *pproptype, [out, retval] IUnknown **ppobj);
  707.         [propputref, id(didItemRelBy), helpstring("property ItemRelatedBy")] HRESULT ItemRelatedBy([in] IMetaPropertyType *pproptype, [in] IUnknown *pobj);
  708.         [propget, id(didMetaPropertyType), helpstring("property MetaPropertyType")] HRESULT MetaPropertyType([in] BSTR bstr, [out, retval] IMetaPropertyType* *pproptype);
  709.         [propget, id(didItemsWithType), helpstring("property ObjectsWithType")] HRESULT ObjectsWithType([in] BSTR bstrCLSID, [out, retval] IObjects **ppobjs);
  710.     };
  711.     [
  712.         object,
  713.         uuid(E8F1FBD5-4E44-4C26-B3D2-2C1C6999D611),
  714.         helpstring("IObjects Interface"),
  715.         pointer_default(unique)
  716.     ]
  717.     interface IObjects : IUnknown
  718.     {
  719.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
  720.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IUnknown * *ppunk);
  721.         [propget, id(didItemsWithType), helpstring("property ItemsWithType")] HRESULT ItemsWithType(BSTR bstrCLSID, [out, retval] IObjects * *pVal);
  722.         [propget, id(didItemWithIID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IUnknown * *ppunk);
  723.         [propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IObjects * *pVal);
  724.         [propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *ppropcond, [out, retval] IObjects * *pVal);
  725.         [id(didAddAt), helpstring("method AddAt")] HRESULT AddAt(IUnknown *punk, long index);
  726.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([out, retval] IUnknown * *ppunk);
  727.         [id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
  728.         [id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  729.         [propget, id(didAddNewAt), helpstring("property AddNewAt")] HRESULT AddNewAt([in] long index, [out, retval] IUnknown * *ppunk);
  730.         [propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IObjects * *pVal);
  731.         [propget, id(didItemsRelToBy), helpstring("property ItemsRelatedToBy")] HRESULT ItemsRelatedToBy([in] IUnknown *pobj, [in] IMetaPropertyType *pproptype, [out, retval] IObjects * *ppobjs);
  732.         [propget, id(didItemsInvRelToBy), helpstring("property ItemsInverseRelatedToBy")] HRESULT ItemsInverseRelatedToBy([in] IUnknown *pobj, [in] IMetaPropertyType *pproptype, [out, retval] IObjects * *ppobjs);
  733.         [id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IObjects **ppobjs);
  734.  
  735.         [propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IObjects * *pVal);
  736.         [propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IUnknown * *ppunk);
  737.         [id(didResync), helpstring("method Resync")] HRESULT Resync();
  738.     };
  739.  
  740.     [
  741.         uuid(8520EF80-1C19-4CB0-83FA-67DB59CC9AE4),
  742.         helpstring("ChannelLineups Class")
  743.     ]
  744.     coclass ChannelLineups
  745.     {
  746.         [default] interface IChannelLineups;
  747.         [default, source] dispinterface IChannelLineupsEvents;
  748.     };
  749.     [
  750.         uuid(83375A19-A098-42CF-9206-EE36FE48C637),
  751.         helpstring("IObjectsNotifications Interface")
  752.     ]
  753.     interface IObjectsNotifications : IUnknown
  754.     {
  755.         [id(didItemAdded), helpstring("method Notify_ItemAdded")] HRESULT Notify_ItemAdded(IUnknown *punk);
  756.         [id(didItemRemoved), helpstring("method Notify_ItemRemoved")] HRESULT Notify_ItemRemoved([in] long idObj);
  757.         [id(didItemChanged), helpstring("method Notify_ItemChanged")] HRESULT Notify_ItemChanged(IUnknown *punk);
  758.         [id(didItemsChanged), helpstring("method Notify_ItemsChanged")] HRESULT Notify_ItemsChanged();
  759.     };
  760.  
  761.     [
  762.         uuid(B485447D-B180-420F-B2A5-E7BBCEA07EAD),
  763.         aggregatable,
  764.         helpstring("Objects Class")
  765.     ]
  766.     coclass Objects
  767.     {
  768.         [default] interface IObjects;
  769.     };
  770.     [
  771.         object,
  772.         uuid(4B16049B-E548-4868-B303-D501340E2CB1),
  773.         dual,
  774.         helpstring("IGuideDataProvider Interface"),
  775.         pointer_default(unique)
  776.     ]
  777.     interface IGuideDataProvider : IDispatch
  778.     {
  779.         [propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
  780.         [propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pbstrName);
  781.         [propget, id(didDescription), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pbstrDesc);
  782.         [propput, id(didDescription), helpstring("property Description")] HRESULT Description([in] BSTR bstrDesc);
  783.         [propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
  784.     };
  785.     [
  786.         object,
  787.         uuid(CA9DE996-637C-47BF-BC10-CF956BE298EC),
  788.         dual,
  789.         helpstring("IGuideDataProviders Interface"),
  790.         pointer_default(unique)
  791.     ]
  792.     interface IGuideDataProviders : IDispatch
  793.     {
  794.         [propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *plCount);
  795.         [propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IGuideDataProvider * *ppdataprovider);
  796.         [propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IGuideDataProvider * *ppdataprovider);
  797.         [propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IGuideDataProvider **ppdataprovider);
  798.         [propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IGuideDataProviders * *ppdataproviders);
  799.         [propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IGuideDataProviders * *ppdataproviders);
  800.         [propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([in] BSTR bstrName, [out, retval] IGuideDataProvider * *ppdataprovider);
  801.  
  802.         [propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IGuideDataProviders * *ppproviders);
  803.         [propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IGuideDataProvider * *ppprovider);
  804.         [id(didResync), helpstring("method Resync")] HRESULT Resync();
  805.     };
  806.     [
  807.         uuid(3CFC7A68-76E9-4F1D-8ECE-08C44F4FFC3E),
  808.         helpstring("GuideDataProvider Class")
  809.     ]
  810.     coclass GuideDataProvider
  811.     {
  812.         [default] interface IGuideDataProvider;
  813.     };
  814.     [
  815.         uuid(850A646E-140B-43B0-A243-20CC6B9FA8BC),
  816.         helpstring("IGuideDataProvidersEvents Interface")
  817.     ]
  818.     dispinterface IGuideDataProvidersEvents
  819.     {
  820.         properties:
  821.         methods:
  822.         [id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannelLineup *pchanlineup);
  823.         [id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
  824.         [id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannelLineup *pchanlineup);
  825.         [id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
  826.     };
  827.  
  828.     [
  829.         uuid(6E30077E-2E0B-4D4A-92B0-CDB5E5116E3B),
  830.         helpstring("GuideDataProviders Class")
  831.     ]
  832.     coclass GuideDataProviders
  833.     {
  834.         [default] interface IGuideDataProviders;
  835.         [default, source] dispinterface IGuideDataProvidersEvents;
  836.     };
  837. };
  838.